package com.swsc.solarverse.service.analysis;

import com.swsc.solarverse.common.mybatis.MybatisService;
import com.swsc.solarverse.dao.entity.analysis.InverterDayDO;
import com.swsc.solarverse.model.InverterGenerationPowerBO;
import com.swsc.solarverse.model.StationGenerationPowerBO;

import java.util.Collection;
import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author AutoGenerator
 * @since 2022-09-04
 */
public interface IInverterDayService extends MybatisService<InverterDayDO> {
    /**
     * 发电量
     * @param tenantNo
     * @param organNo
     * @param year
     * @param month
     * @param day
     * @return
     */
    StationGenerationPowerBO dailyGenerationPower(Integer tenantNo, Integer organNo, Short year, Byte month, Byte day);

    /**
     * 统计
     * @param organNoIn
     * @param year
     * @param month
     * @param day
     * @return
     */
    StationGenerationPowerBO sumDailyGenerationPower(Collection<Integer> organNoIn, Short year, Byte month, Byte day);

    /**
     * 发电量
     * @param tenantNo
     * @param organNo
     * @param year
     * @param month
     * @return
     */
    StationGenerationPowerBO monthlyGenerationPower(Integer tenantNo, Integer organNo, Short year, Byte month);

    /**
     * 发电量
     * @param tenantNo
     * @param organNo
     * @param year
     * @return
     */
    StationGenerationPowerBO yearlyGenerationPower(Integer tenantNo, Integer organNo, Short year);

    /**
     * 日发电量
     * @param year
     * @param month
     * @param day
     * @return
     */
    List<InverterGenerationPowerBO> inverterDailyGenerationPower(Short year, Byte month, Byte day);
    /**
     * 月发电量
     * @param year
     * @param month
     * @return
     */
    List<InverterGenerationPowerBO> inverterMonthlyGenerationPower(Short year, Byte month);

    /**
     * 年发电量
     * @param year
     * @return
     */
    List<InverterGenerationPowerBO> inverterYearlyGenerationPower(Short year);

    /**
     * 发电量
     * @param year
     * @param month
     * @param day
     * @return
     */
    List<StationGenerationPowerBO> stationDailyGenerationPower(Short year, Byte month, Byte day);


    /**
     * 发电量
     * @param year
     * @param month
     * @return
     */
    List<StationGenerationPowerBO> stationMonthlyGenerationPower(Short year, Byte month);

    /**
     * 发电量
     * @param year
     * @return
     */
    List<StationGenerationPowerBO> stationYearlyGenerationPower(Short year);
}
